package com.cetcs.kmga.dataManager.dao.hbase;

import com.cetcs.kmga.common.Page;

import java.util.List;
import java.util.Map;

/**
 * 封装日志管理dao层基础接口类
 *
 * @author xutao
 * @version V1.0 创建时间：2017-09-07 14:26
 *          Copyright 2017 by CETC
 */
public interface ILogManagerBaseDao {

    /**
     * 获取日志的查询公共方法，不带分页
     *
     * @param indexName  索引或数据库名
     * @param tbName     表名
     * @param rowKey     组装rowKey查询条件
     * @param outers     普通的查询条件
     * @param sortFields 排序规则
     * @return
     * @throws Exception
     */
    List<Map<String, Object>> findCleanLogRecords(String indexName, String tbName, List<String> columnArr, LogRowKeyQuery rowKey, List<LogOuterQuery> outers, Map<String, Integer> sortFields) throws Exception;


    /**
     * 返回带分页条件的查询结果
     *
     * @param indexName  索引或数据库名
     * @param tbName     表名
     * @param columnArr  查询的字段
     * @param rowKey     组装rowKey查询条件
     * @param outers     普通的查询条件
     * @param sortFields 排序规则
     * @param page       当前页
     * @param pageSize   每页多少条
     * @return
     * @throws Exception
     */
    Page findCleanLogRecordsByPageCondition(String indexName, String tbName, List<String> columnArr, LogRowKeyQuery rowKey, List<LogOuterQuery> outers, Map<String, Integer> sortFields, int page, int pageSize) throws Exception;
}
